import { createRouter, createWebHistory, RouteRecordRaw, NavigationGuardNext, RouteLocationNormalized } from 'vue-router';
import { useUserStore } from '../store/user';

// 自动导入路由配置文件（优化 index.vue 路径处理）
const routeFiles = import.meta.glob('../views/**/*.vue', { eager: true });
const routes: Array<RouteRecordRaw> = [];

Object.entries(routeFiles).forEach(([path, module]) => {
  const normalizedPath = path.replace(/\\/g, '/'); // Windows 反斜杠转斜杠
  const viewPath = normalizedPath.replace('../views/', ''); // 去掉 views 目录前缀
  let fileName = viewPath.replace(/\.vue$/, ''); // 去掉 .vue 后缀

  // 关键修复：处理 index.vue 路径（如 login/index → login）
  if (fileName.endsWith('/index')) {
    fileName = fileName.replace(/\/index$/, ''); 
  } else if (fileName === 'index') { // 处理根目录 index.vue（如 views/index.vue）
    fileName = '';
  }

  if (fileName) {
    const routePath = `/${fileName.toLowerCase()}`; // 生成路由路径（如 login → /login）
    routes.push({
      path: routePath,
      name: fileName.replace(/\//g, '-'), // 生成路由名称（如 login）
      component: (module as any).default
    });
  } else if (fileName === '') {
    // 处理根目录 index.vue（生成 / 路径）
    routes.push({
      path: '/',
      name: 'Home',
      component: (module as any).default
    });
  }
});

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes
});

// 定义白名单（保持原有逻辑）
const whiteList = ['/login']; 

// 路由守卫（保持原有逻辑）
router.beforeEach((to: RouteLocationNormalized, from: RouteLocationNormalized, next: NavigationGuardNext) => {
  const userStore = useUserStore();
//   const isLoggedIn = userStore.token; 
  const isLoggedIn = true
  if (whiteList.includes(to.path)) {
    next();
  } else if (isLoggedIn) {
    next();
  } else {
    next('/login'); 
  }
});

export default router;